package 享元模式.使用实例;

public class Main {
	public static void main(String[] args) {
		//	 假设有两个科目，初始化一遍 pool 池子
		// 但是由于没有 user，所以内部的user都是null
		for (int i = 0; i < 2; i++) {
			String subject = "科目" + i;
			ExamInfoFactory.getExamInfo(subject);
		}
		//	假设有3个考生考试。
		for (int i = 0; i < 3; i++) {
			// 我们有2个科目在考试
			for (int j = 0; j < 2; j++) {
				ExamInfo examInfo = ExamInfoFactory.getExamInfo("科目" + j);
				examInfo.setUser("考生" + i);
				System.out.println(examInfo);
			}
		}
		// 反观不用享元模式的话
		// 3个考生
		for (int i = 0; i < 3; i++) {
			// 我们有2个科目在考试
			for (int j = 0; j < 2; j++) {
				// 需要创建 2*3 = 6 个对象
				ExamInfo examInfo = new ExamInfo("科目" + j);
				examInfo.setUser("考生" + i);
				System.out.println(examInfo);
			}
		}
	}
}
